REQUIRES: system-windows, msvc
RUN: %build --compiler=clang-cl --mode=compile --arch=32 --nodefaultlib --output=%T/TypeQualsTest.cpp.obj %S/Inputs/TypeQualsTest.cpp
RUN: %build --compiler=msvc --mode=link --arch=32 --nodefaultlib --output=%T/TypeQualsTest.cpp.exe %T/TypeQualsTest.cpp.obj
RUN: lldb-test symbols %T/TypeQualsTest.cpp.exe | FileCheck %s

CHECK: Module [[MOD:.*]]
CHECK-DAG: SymbolFile pdb ([[MOD]])
CHECK-DAG:      Type{{.*}} , name = "const int", size = 4, compiler_type = {{.*}} const int
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} const int *
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} const int **const
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} const int *const
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} const int *const *
CHECK-DAG:      Type{{.*}} , name = "Func1", {{.*}}, compiler_type = {{.*}} void (const int *, const int *, const int **const, const int *const *)

CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} volatile int *
CHECK-DAG:      Type{{.*}} , name = "Func2", {{.*}}, compiler_type = {{.*}} void (volatile int *, volatile int *)

CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} int *
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} int *&
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} int &&
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} int &
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} const int &
CHECK-DAG:      Type{{.*}} , name = "Func3", {{.*}}, compiler_type = {{.*}} void (int *&, int &, const int &, int &&)

// FIXME: __unaligned is not supported.
CHECK-DAG:      Type{{.*}} , name = "Func4", {{.*}}, compiler_type = {{.*}} void (int *, int *)

CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} int *__restrict
CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} int &__restrict
CHECK-DAG:      Type{{.*}} , name = "Func5", {{.*}}, compiler_type = {{.*}} void (int, int *__restrict, int &__restrict)

CHECK-DAG:      Type{{.*}} , name = "Func6", {{.*}}, compiler_type = {{.*}} void (const volatile int *__restrict)

CHECK-DAG:      Type{{.*}} , size = 400, compiler_type = {{.*}} volatile int *[100]
CHECK-DAG:      Type{{.*}} , size = 4000, compiler_type = {{.*}} volatile int *[10][100]

CHECK-DAG:      Type{{.*}} , size = 4, compiler_type = {{.*}} long *__restrict

CHECK-DAG: {{^[0-9A-F]+}}:   CompileUnit{{[{]0x[0-9a-f]+[}]}}, language = "c++", file = '{{.*}}\TypeQualsTest.cpp'
